home *** CD-ROM | disk | FTP | other *** search
/ Xenosoft 2 / Xenosoft 2 (Game collection)(1994).iso / bioforge / script / ai_lex.scp < prev    next >
Text File  |  1994-12-07  |  11KB  |  532 lines

  1. // THIS IS CALLED EVERY TIME LEX IS LOADED UP, INCLUDING FROM SAVEGAMES.  SO
  2. //   WE DON'T WANT TO RESTART THIS PROCESS EVERYTIME. -BES
  3. { LEX_LOAD
  4.     //@PROCESS LEX_BLINKY
  5.     @Çì      LEX_WOUNDS
  6.     ^ïÿ             = 0;                    // SHOULD BE RESET IN CASE SAVED AS 1
  7. }
  8.  
  9. { LEX_BLINKY
  10.     :TOP
  11.     W    3 SECONDS
  12.     I  @Ç⌐      (LEX) THEN
  13.         @Ç¥   BLINK
  14.     J    #Çé
  15. }
  16.  
  17. { KILLLEX
  18.  
  19.     I ( ^ïÅ        ) THEN           // ONLY KILL LEX ONCE!
  20.         é     
  21.  
  22.     ^ïÅ        = 1
  23.  
  24.     // THIS IS JUST A LITTLE INSURANCE THAT MAKES CERTAINS THERE
  25.     // IS NOW WAY TO BREAK OUT OF THE DEAD LOOP.
  26.     Æ              
  27.  
  28.     // NEED A CALL TO STOP WHATEVER MONITOR MAY BE RUNNING RIGHT HERE: -KLD
  29.     I ( @Çú              () = 1 ) THEN 
  30.     {
  31.         @Ç¥   EXITMONITOR    // MUST NOT CONTINUE UNTIL EXITMONITOR FINISHED
  32.     }
  33.  
  34.  
  35.     // THE SCREEN MIGHT BE BLACK AT THIS POINT, AND/OR NOTHING INTERESTING
  36.     // MIGHT BE HAPPPENING, SO ONLY WAIT FOR TWO SECONDS.  IMPOSE A
  37.     // LONGER WAIT ON A PER-CASE BASIS IF YOU WANT ONE. -KLD
  38.     // YOU MAY IMPOSE A LONGER WAIT BY SETTING _DELAY_BEFORE_RELOAD - LRG
  39.     I ( ^ïù                  ) THEN
  40.         W    ^ïù                  SECONDS
  41.  
  42.     ^ïù                  = 2        // RESET VARIABLE
  43.  
  44.     // TAKE THIS OUT BEFORE WE SHIP!!!!! - LRG
  45.     // AT THIS POINT, YOU MAY HAVE BEEN BROUGHT BACK TO LIFE
  46.     // BY THE LIVE CODE. -KLD
  47.     I ( ^ïÅ        != 1 ) THEN
  48.         é     
  49.  
  50.     // THIS MAKES CERTAIN THAT THE TITLE SCREEN IS SHOWN BEHIND THE
  51.     // OPTIONS. -KLD
  52.     //@FADE HIDE
  53.     //CAMERA SHOW TITLE
  54.     //SUSPEND
  55.  
  56.     // MAKE CERTAIN THAT ANY FADE-OUTS WILL NOT EFFECT THE SCREEN -
  57.     // AVOID DOING OPTIONS ON A BLACK SCREEN!
  58.     Ü            ( 0, 0, 0, 999 )
  59.  
  60.     // STOP ANY EARTHQUAKES AND MAKE SURE THE SCREEN IS OFFSET TO ZERO.
  61.     ì      0
  62.     ì      MOVE 0 0 0 0
  63.  
  64.  
  65.     O     $Çà     
  66.     ^ïÿ             = 1;
  67.     C      SHOW STITLE
  68.     //@FADE SHOW
  69.     H          
  70. }
  71.  
  72. { DAMAGE_LEX_IMPACT _AMOUNT
  73.  
  74.     @Ç¢               PLAYER
  75.  
  76.     D      ~ÇÇ     IMPACT
  77.  
  78.     I  .ÇâÇÇ        <= 0 THEN
  79.         {
  80.         // IMPOSING A WAIT HERE TO LET MONSTERS FINISH VICTORY TAUNTS...
  81.         ^ïù                  = 7
  82.         @Çì      KILLLEX
  83.         }
  84. }
  85.  
  86. { DAMAGE_LEX_ENERGY _AMOUNT
  87.  
  88.     @Ç¢               PLAYER
  89.  
  90.     D      ~ÇÇ     ENERGY
  91.  
  92.     I  .ÇâÇÇ        <= 0 THEN
  93.         {
  94.         // IMPOSING A WAIT HERE TO LET MONSTERS FINISH VICTORY TAUNTS...
  95.         ^ïù                  = 7
  96.         @Çì      KILLLEX
  97.         }
  98. }
  99.  
  100. { LEX_DEATH
  101.  
  102.     // DON'T DIE INSIDE A MONITOR... - LRG
  103.     I ( @Çú               ) THEN
  104.     {
  105.         @Ç¥   EXITMONITOR    // MUST NOT CONTINUE UNTIL EXITMONITOR FINISHED
  106.     }
  107.  
  108.     A  OFF
  109.     u          CURFIG OFF
  110.     ║            ON
  111.     M      DIE
  112.     o         
  113.  
  114.     // IMPOSING A WAIT HERE TO LET MONSTERS FINISH VICTORY TAUNTS...
  115.     ^ïù                  = 7
  116.  
  117.     @Ç¥   KILLLEX
  118. }
  119.  
  120. // LEX_IDLE WILL SELECT RANDOMLY AMONG 5 SEPERATE STAND MOTIONS
  121. { LEX_STAND
  122.     I  @ÇÄ             (ZEG) THEN
  123.         {
  124.         M      FLOAT
  125.         é     
  126.         }
  127.  
  128.     :TOP
  129.  
  130.     M      STAND CONTINUE
  131.     W    @Çà    (2,14) SECONDS
  132.  
  133.     I ( ^Ç│    == 0 ) THEN
  134.         {
  135.         I  @ÇÆ                 RTHAND THEN
  136.             {
  137.             // LOOK BEHIND MYSELF
  138.             I  @Çà    (10,20) < 15 THEN
  139.                 M      STAND_3
  140.             E   
  141.                 M      STAND_4
  142.             }
  143.         E   
  144.             {
  145.             N      @Çà    (2,4)
  146.                 {
  147.                 U    2  // FOLD ARMS
  148.                     M      STAND_1
  149.                     X ÇÇ 
  150.  
  151.                 U    3  // SCRATCH BELLY
  152.                     M      STAND_2
  153.                     X ÇÇ 
  154.  
  155.                 U    4  // LOOK BEHIND MYSELF
  156.                     I  @Çà    (10,20) < 15 THEN
  157.                         M      STAND_3
  158.                     E   
  159.                         M      STAND_4
  160.                     X ÇÇ 
  161.                 }
  162.             }
  163.         }
  164.  
  165.     J    #Çê
  166. }
  167.  
  168.  
  169. { LEX_WALK
  170.     I  .ÇéÇÇ        < 33 THEN
  171.         M      WALK_DMG2
  172.  
  173.     E    I  .ÇéÇÇ        < 66 THEN
  174.         M      WALK_DMG1
  175.  
  176.     E   
  177.         M      WALK
  178. }
  179.  
  180. { LEX_RUN
  181.     I  .ÇéÇÇ        < 33 THEN
  182.         {
  183.         M      RUN CONTINUE
  184.         W    10
  185.         A  OFF
  186.         M      RUN_N_FALL
  187.         M      GET_UP_FORWARD
  188.         A  ON
  189.         }
  190.     E   
  191.         M      RUN
  192. }
  193.  
  194. { LEX_WALK_BACK
  195.     I  .ÇéÇÇ        < 33 THEN
  196.         M      LIMP_BACK
  197.  
  198.     E   
  199.         M      WALK_BACK
  200. }
  201.  
  202. { LEX_ATK_SHOOT
  203.  
  204.     I  @Çæ        (RTHAND,GRENADE) THEN
  205.         M      GRENADE_TOSS
  206.  
  207. // IF PFD IS CHARGED, FIRE IT IN PREFERENCE TO ALL OTHER WEAPONS
  208.  
  209.     E    I  ^ïé        = 1 OR ^Ç╝               THEN
  210.         {
  211.         ^ïé        = 0
  212.                        @Çì      FIRE_PFD
  213.         //    MOTION PFD_SHOOT_1
  214.         //    @MAKEMISSILE BOLTPFD LTLOWARM 6 15 (0,0,0)
  215.         //    MOTION PFD_SHOOT_2
  216.  
  217.         I  ^Ç╝               = 0 THEN
  218.             {
  219.             W    3 SECONDS
  220.             i           LEX PFDONCE
  221.             }
  222.  
  223.         }
  224.  
  225.     E    I  @Çæ        (RTHAND,BLASTER) = $Ç╝   OR @Çæ        (RTHAND,TONFA) = $Ç╝   THEN
  226.     {
  227.         I  @Ç⌐      (LEXMIR) THEN
  228.             {
  229.             M      ATK_SHOOT_FAIL
  230.             @Çì      ADDLOGWEAPONSFAIL
  231.             é     
  232.             }
  233.  
  234.         I  @ÇÄ             (PAD3) OR @ÇÄ             (PAD4) THEN
  235.             M      SHOOT_UP
  236.         E   
  237.             M      ATK_SHOOT
  238.     }
  239. }
  240.  
  241. { FIRE_PFD
  242.     {
  243.      I  (^Ç╝               = 1 ) THEN
  244.         @Çì      FIRE_PFD_BLST_SET
  245.      E   
  246.          @Çì      FIRE_PFD_BLST
  247.     }
  248.         M      PFD_SHOOT_1
  249.         @Ç╣          BOLTPFD LTLOWARM 6 15 (0,0,0)
  250.         M      PFD_SHOOT_2
  251. }
  252.  
  253. [ FIRE_PFD_BLST
  254.         //THIS TIMING WORKS FOR NORMAL FIRING OF PFD, BUT NOT FOR SET SCENE
  255.         01:00 e          PFDBLST
  256.         01:00 f         LTLOWARM
  257.         01:00 v       CURITEM PDFFR0 ON INCREMENT 4
  258.         01:00 v       CURITEM PDFSD0 ON INCREMENT 4
  259.          01:15 ┤          
  260. ]
  261.  
  262. [ FIRE_PFD_BLST_SET
  263.         //THIS TIMING WORKS FOR SET SCENE FIRING OF PFD, BUT NOT FOR NORMAL
  264.         00:25 e          PFDBLST
  265.         00:25 f         LTLOWARM
  266.         00:25 v       CURITEM PDFFR0 ON INCREMENT 4
  267.         00:25 v       CURITEM PDFSD0 ON INCREMENT 4
  268.          01:25 ┤          
  269. ]
  270.  
  271. { LEX_SHOOT
  272.  
  273.     I  @Çæ        (RTHAND,GRENADE) THEN
  274.         M      GRENADE_TOSS
  275.  
  276. // IF PFD IS CHARGED, FIRE IT IN PREFERENCE TO ALL OTHER WEAPONS
  277.  
  278.     E    I  ^ïé        = 1 OR ^Ç╝               THEN
  279.         {
  280.         ^ïé        = 0
  281.                        @Çì      FIRE_PFD
  282.        //    MOTION PFD_SHOOT_1 
  283.        //    @MAKEMISSILE BOLTPFD LTLOWARM 6 15 (0,0,0)
  284.        //    MOTION PFD_SHOOT_2 
  285.  
  286.         I  ^Ç╝               = 0 THEN
  287.             {
  288.             W    3 SECONDS
  289.             i           LEX PFDONCE
  290.             }
  291.  
  292.         }
  293.  
  294.     E    I  @Çæ        (RTHAND,BLASTER) = $Ç╝   OR @Çæ        (RTHAND,TONFA) = $Ç╝   THEN
  295.     {
  296.         I  @Ç⌐      (LEXMIR) THEN
  297.             {
  298.             M      SHOOT_FAIL
  299.             @Çì      ADDLOGWEAPONSFAIL
  300.             é     
  301.             }
  302.  
  303.         I  @ÇÄ             (PAD3) OR @ÇÄ             (PAD4) THEN
  304.             M      SHOOT_UP
  305.         E   
  306.             M      SHOOT
  307.     }
  308. }
  309.  
  310. { ADDLOGWEAPONSFAIL
  311.  
  312.     W    2 SECONDS
  313.     i           LEX WEAPONSFAIL
  314. }
  315.  
  316. { LEX_ENTER_COMBAT
  317.     I  @Ç⌐       ( HARD) THEN
  318.         @Ç¥  ( HARD_ENTER_COMBAT)
  319.  
  320.     E   
  321.         {
  322.         M      ENTER_COMBAT
  323.         w     CURFIG CLEAR MDHNRR1 PICTURE 2
  324.         w     CURFIG CLEAR MDHNRF1 PICTURE 3
  325.         w     CURFIG CLEAR MDHNLL1 PICTURE 4
  326.         w     CURFIG CLEAR MDHNLF3 PICTURE 5
  327.         }
  328. }
  329.  
  330. { LEX_LEAVE_COMBAT
  331.     I  @Ç⌐       ( HARD) THEN @Ç¥  ( HARD_LEAVE_COMBAT)
  332.     E   
  333.         {
  334.         w     CURFIG RESTORE MDHNRR1
  335.         w     CURFIG RESTORE MDHNRF1
  336.         w     CURFIG RESTORE MDHNLL1
  337.         w     CURFIG RESTORE MDHNLF3
  338.         }
  339. }
  340.  
  341.  
  342. { LEX_STIMULUS( _DAMAGE )
  343.  
  344. P        ~Çü   
  345.  
  346. :GOT_HIT
  347.     I ( @Ç⌐      ( HARD ) ) THEN
  348.         {
  349.         ^ïÉ         = ^ïÉ         - ~ÇÇ    
  350.         }
  351.  
  352.     I ( @Çó            ( ^怒          ) == $Ç╝   ) THEN
  353.         {
  354.                 ( ^ï₧         )
  355.         }
  356.  
  357.     é     
  358. }
  359.  
  360. { LEX_BAT_100_TAKE
  361.     @üì            `몠              "a battery/GEine Batterie/F"    //@@@ PLEASE TRANSLATE
  362. }
  363.  
  364. { LEX_BAT_150_TAKE
  365.     @üì            `몠              "a battery/GEine Batterie/F"    //@@@ PLEASE TRANSLATE
  366. }
  367.  
  368. { LEX_ABAT_500_TAKE
  369.     @üì            `뺠                "an alien battery/GEine ausserirdische Batterie/F"   //@@@ PLEASE TRANSLATE
  370. }
  371.  
  372. { LEX_BLASTER_TAKE
  373.     @üì            `ë¿               "a blaster/GEin Strahler/F"  //@@@ PLEASE TRANSLATE
  374. }
  375.  
  376. { LEX_BLASTER2_TAKE
  377.     @üì            `ë¿               "a blaster/GEin Strahler/F"  //@@@ PLEASE TRANSLATE
  378. }
  379.  
  380. { LEX_BLASTERM2_TAKE
  381.     @üì            `ë¿               "a blaster/GEin Strahler/F"  //@@@ PLEASE TRANSLATE
  382. }
  383.  
  384. { LEX_BLASTERM3B_TAKE
  385.     @üì            `ë¿               "a blaster/GEin Strahler/F"  //@@@ PLEASE TRANSLATE
  386. }
  387.  
  388. { LEX_BLASTERM5_TAKE
  389.     @üì            `ë¿               "a blaster/GEin Strahler/F"  //@@@ PLEASE TRANSLATE
  390. }
  391.  
  392. { LEX_BLOCK_TAKE
  393.     @üì            `ë⌐                "an alien artifact/GEin ausserirdisches Atrefakt/F"  //@@@ PLEASE TRANSLATE
  394.     W    5 SECONDS
  395.     i           LEX ARTIFACT
  396. }
  397.  
  398. { LEX_BOMB_TAKE
  399.     @üì            `묠           "a bomb!"    //@@@ PLEASE TRANSLATE
  400. }
  401.  
  402. { LEX_CAYARM_TAKE
  403.     @üì            `ë½           "a severed arm"      //@@@ PLEASE TRANSLATE
  404.     W    3 SECONDS
  405.     i           LEX ARMOFF
  406. }
  407.  
  408. { LEX_CAYLOG_TAKE
  409.     I  ^Çú             THEN
  410.         {
  411.         I  ^Çñ               THEN
  412.             @üì            `ë¼             "Caynan's logbook"   //@@@ PLEASE TRANSLATE
  413.         E   
  414.             @üì            `ë¡             "Caynan's logbook?"  //@@@ PLEASE TRANSLATE
  415.         }
  416.     E   
  417.         @üì            `ë«           "a logbook"  //@@@ PLEASE TRANSLATE
  418. }
  419.  
  420. { LEX_DANELOG_TAKE
  421.     I  ^Çú             THEN
  422.         @üì            `ë»            "Dane's logbook"     //@@@ PLEASE TRANSLATE
  423.     E   
  424.         @üì            `ë«           "a logbook"  //@@@ PLEASE TRANSLATE
  425. }
  426.  
  427. { LEX_FLUTE_TAKE
  428.     @üì            `ë░             "a flute"    //@@@ PLEASE TRANSLATE
  429. }
  430.  
  431. { LEX_FORK_TAKE
  432.     @üì            `ë▒            "a fork"     //@@@ PLEASE TRANSLATE
  433.     W    3 SECONDS
  434.     i           LEX FINDFORK
  435.     ^ï⌐           = $Ç╝  
  436. }
  437.  
  438. { LEX_FORK_DROP
  439.     ^ï⌐           = $Ç╗   
  440. }
  441.  
  442. { LEX_GRENADE_TAKE
  443.     @üì            `ë▓               "a grenade!"         //@@@ PLEASE TRANSLATE
  444. }
  445.  
  446. { LEX_KEY_TAKE
  447.     @üì            `ë⌐                "an alien artifact/GEin ausserirdisches Atrefakt/F"  //@@@ PLEASE TRANSLATE
  448. }
  449.  
  450. // THERE IS NO E IN KEYDEVICE. -KLD
  451. { LEX_KEYDVICE_TAKE
  452.     @üì            `ë│              "a device with a button"     //@@@ PLEASE TRANSLATE
  453. }
  454.  
  455. { LEX_LEXLOG_TAKE
  456.     @üì            `ë«           "a logbook"         //@@@ PLEASE TRANSLATE
  457. }
  458.  
  459. { LEX_LOGA_TAKE
  460.     @üì            `ë«           "a logbook"         //@@@ PLEASE TRANSLATE
  461. }
  462.  
  463. { LEX_LOGB_TAKE
  464.     @üì            `ë«           "a logbook"         //@@@ PLEASE TRANSLATE
  465. }
  466.  
  467. { LEX_MEAT_TAKE
  468.     @üì            `ë╡            "a hunk of meat"     //@@@ PLEASE TRANSLATE
  469. }
  470.  
  471. { LEX_MEDICAID_TAKE
  472.     @üì            `ë╢               "a medical device"   //@@@ PLEASE TRANSLATE
  473. }
  474.  
  475. { LEX_PHOTO_TAKE
  476.     @üì            `ë╖             "a photograph"       //@@@ PLEASE TRANSLATE
  477. }
  478.  
  479. { LEX_REFLECT_TAKE
  480.     @üì            `ë╕            "a shimmering cube"  //@@@ PLEASE TRANSLATE
  481.     W    5 SECONDS
  482.     i           LEX ASHLD
  483. }
  484.  
  485. { LEX_REFLECT_DROP
  486.  
  487.     // IF LEX IS NOT WEARING THE MIRROR SUIT DON'T DO ANYTHING
  488.     I  @Ç⌐      (LEXMIR) != 1 THEN é     
  489.  
  490.     I  @Çó             ^ä╝                    THEN
  491.                    ^ä╝                   
  492.  
  493.     ù           (LEX)
  494.     I  @ÇÄ              BCH || @ÇÄ              LND || @ÇÄ              PAD THEN
  495.         {
  496.         M      CHOKE
  497.         @Ç¥   KILLLEX
  498.         é     
  499.         }
  500. }
  501.  
  502. { LEX_SCANNER_TAKE
  503.     @üì            `ë╣               "a scanning device"  //@@@ PLEASE TRANSLATE
  504. }
  505.  
  506. { LEX_TONFA_TAKE
  507.     @üì            `ë║           "a big gun"  //@@@ PLEASE TRANSLATE
  508.     W    10 SECONDS
  509.     i           LEX TONFA
  510. }
  511.  
  512. { LEX_WTALKY_TAKE
  513.     @üì            `ë╗             "a damaged walky-talky"      //@@@ PLEASE TRANSLATE
  514. }
  515.  
  516.  
  517.  
  518. { LEX_LOG_ADDED
  519.     @Ç¢               PLAYER
  520.     @Çå    `äñ 
  521.  
  522.     v       CURFIG LEXPIM ON INCREMENT 60
  523. }
  524.  
  525. { LEX_LOG_SEEN
  526.     @Ç¢               PLAYER
  527.     v       CURFIG LEXPIM OFF
  528.     w     CURFIG RESTORE LEXPIM
  529. }
  530.  
  531. //$ 26 - version number
  532.